Skip to content

feat(cli): add AST validation and virtual storage layout - #385

Merged
0x76agabond merged 8 commits into
Perfect-Abstractions:mainfrom
0x76agabond:main
Aug 23, 2026
Merged

feat(cli): add AST validation and virtual storage layout#385
0x76agabond merged 8 commits into
Perfect-Abstractions:mainfrom
0x76agabond:main

Conversation

@0x76agabond

Copy link
Copy Markdown
Collaborator

Summary

Introduces AST-based CLI validation and Virtual Storage Layout support for Compose projects.

Changes Made

  • Added Solidity AST compilation and parsing through Foundry and Hardhat.
  • Added Virtual Storage Layout generation and collision detection.
  • Added the compose validate pipeline and integrated validation into compose init.
  • Added unit and integration tests for AST generation, storage layouts, and validation pipelines.

Checklist

Before submitting this PR, please ensure:

  • Code follows the Solidity feature ban - No inheritance, constructors, modifiers, public/private variables, external library functions, using for directives, or selfdestruct

  • Code follows Design Principles - Readable, uses diamond storage, favors composition over inheritance

  • Code matches the codebase style - Consistent formatting, documentation, and patterns (e.g. ERC20Facet.sol)

  • Code is formatted with forge fmt

  • Existing tests pass - Run tests to be sure existing tests pass.

  • New tests are optional - If you don't provide tests for new functionality or changes then please create a new issue so this can be assigned to someone.

  • All tests pass - Run forge test and ensure everything works

  • Documentation updated - If applicable, update relevant documentation

  • Changesets — If this PR changes publishable packages (src/, cli/), changeset-bot will comment if a release note might be needed. You can add one when convenient or defer to maintainers.

Make sure to follow the contributing guidelines.

Additional Notes

  • Selector export differences are reported as warnings; selector and storage collisions remain blocking errors.
  • Foundry and Hardhat integration tests compile a minimal Solidity fixture and compare the generated AST against canonical expected output.

@changeset-bot

changeset-bot Bot commented Aug 16, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: cd8f28d

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@perfect-abstractions/compose-cli Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@netlify

netlify Bot commented Aug 16, 2026

Copy link
Copy Markdown

👷 Deploy request for compose-diamonds pending review.

Visit the deploys page to approve it

Name Link
🔨 Latest commit cd8f28d

@0x76agabond
0x76agabond requested a review from maxnorm August 16, 2026 18:01
@0x76agabond
0x76agabond merged commit 0f766de into Perfect-Abstractions:main Aug 23, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant